Relationship Maintenance in Software Language Repositories
نویسنده
چکیده
The context of this research is testing and building software systems and, specifically, software language repositories (SLRs), i.e., repositories with components for language processing (interpreters, translators, analyzers, transformers, pretty printers, etc.). SLRs are typically set up for developing and using metaprogramming systems, language workbenches, language definition frameworks, executable semantic frameworks, and modeling frameworks. This work is an inquiry into testing and building SLRs in a manner that the repository is seen as a collection of language-typed artifacts being related by the applications of language-typed functions or relations which serve language processing. The notion of language is used in a broad sense to include text-, tree-, and graphbased languages as well as representations based on interchange formats and also proprietary formats for serialization. The overall approach underlying this research is one of language design driven by work on a particular SLR, YAS, which features a significant number of processed languages and language processors as well as a noteworthy heterogeneity in terms of representation types and implementation languages. The knowledge gained by our research is best understood as a declarative language design for regression testing and build management; we introduce a corresponding language Ueber with an executable semantics which maintains relationships between language-typed artifacts in an SLR. The grounding of the reported research is based on the executable, logic programming-based definition of the Ueber language and its systematic application to the management of YAS which consists of hundreds of language definition and processing components (such as interpreters and transformations) for more than thirty languages (not counting different representation types) with Prolog, Haskell, Java, and Python being used as implementation languages. The importance of this work stems from its objective of helping to understand and maintain relationships in SLRs, thereby directly helping users and developers of SLRs. ACM CCS 2012 Software and its engineering → Software libraries and repositories; Software configuration management and version control systems; Syntax; Semantics;
منابع مشابه
Towards Component-based Software Maintenance via Software Configuration Management Techniques
This paper presents an approach that aims to assist maintenance of component-based systems by means of Software Configuration Management techniques. These techniques support different activities of software maintenance, from the maintenance request up to implementation and integration. Moreover, some feedback about the relationship of component-based artifacts is provided by applying data minin...
متن کاملSoftware Mining Studies: Goals, Approaches, Artifacts, and Replicability
The mining of software archives has enabled new ways for increasing the productivity in software development: Analyzing software quality, mining project evolution, investigating change patterns and evolution trends, mining models for development processes, developing methods of integrating mined data from various historical sources, or analyzing natural language artifacts in software repositori...
متن کاملMining evolutionary dependencies from web-localization repositories
An approach to mining repositories of web-based user documentation for patterns of evolutionary change in the context of internationalization and localization is presented. Localized web documents that are frequently co-changed (i.e., an evolutionary dependency) during the natural language translation process are uncovered to support the future evolution of the system. A sequential-pattern mini...
متن کاملThe Small Project Observatory
Maintenance is an important activity in software engineering with studies attributing it more than 75% of the total cost of a system. More than half the time dedicated to maintenance is spent on reverse engineering the code which often is the only accurate source of information. In this context, among the many approaches, software visualization tools have long been seen as an important asset to...
متن کاملRepositories for Software Reuse: The Software Information Base
Repositories play a pivotal role in an integrated reusebased application development environment. Reusing software components implies their persistent storage and maintenance, and the ability to efficiently find them. Repositories built with reuse in mind can be considered as special-purpose information systems, required to support powerful semantic modelling, flexible retrieval of varied softw...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Programming Journal
دوره 1 شماره
صفحات -
تاریخ انتشار 2017